当前目录下有几万个文件,文件名为英文,把文件按首字母存放到下级目录中。用批处理实现自动移动文件。文件类型可以是任意。新建的目录名按照a,b,c,d...z建立。
::rem 此程序把指定的html文件按照英文首字母创建目录,并把文件移动到相关目录下
@echo off
rem 默认为utf-8编码
Chcp 65001
Setlocal Enabledelayedexpansion
echo begin > log.txt
::rem 用for获取当前目录下的所有html类型文件
for %%i in (*.html) do (
set files=%%i
set name=%%~ni
::获取文件路径
set path=%%~pi
set firstname=!name:~0,1!
::在当前目录下创建目录名为文件名首字母的目录
set newpath=!path!!firstname!&echo newpath=!path!!firstname!>>log.txt
::如果目录不存在,就创建一个目录
if not exist !newpath! (echo !newpath!notexist>>log.txt &md !newpath!)
::把文件移动到以其首字母命名的目录下
move "!files!" "!newpath!\"
)
goto eof
rem ---------------------------------------------------------------------